/**
 * TipoOfrenda.java
 * Fecha de creación: 25/09/2013, 15:35:04
 */
package mx.adventista.tesoreria.modelo.catalogo;

/**
 * Tipos de ofrendas
 * @author Edgardo Zavala (edgardo.zavala@gmail.com)
 */

public enum TipoOfrenda {

	/**
	 * Tipo ofrenda Local
	 */
	LOCAL(20, "Local", "Ofrenda local, se queda en la Iglesia", true),

	/**
	 * Tipo ofrenda Combinada
	 */
	COMBINADA(
		21,
		"Combinada",
		"Ofrenda combinada, una parte se queda en la iglesia, otra parte se va a la asociación/unión",
		true),

	/**
	 * Tipo ofrenda Asociación
	 */
	ASOCIACION(22, "Asociacion", "Ofrenda asociacion, se envía a la asociación/unión", true);

	private int id;
	private String clave;
	private String descripcion;
	private boolean activo;

	private TipoOfrenda(int id, String clave, String descripcion, boolean activo) {
		this.id = id;
		this.clave = clave;
		this.descripcion = descripcion;
		this.activo = activo;
	}

	/**
	 * Obtiene el enum a partir del identificador
	 * @author Edgardo Zavala (edgardo.zavala@gmail.com)
	 * @param id
	 * @return {@link TipoOfrenda}
	 */
	public static TipoOfrenda valueOf(int id) {
		for (TipoOfrenda tipoOfrenda : values()) {
			if (tipoOfrenda.getId() == id) {
				return tipoOfrenda;
			}
		}

		throw new IllegalArgumentException("id invalido para obtener el tipoOfrenda: " + id);

	}

	/**
	 * @return el atributo id
	 */
	public int getId() {
		return id;
	}

	/**
	 * @return el atributo clave
	 */
	public String getClave() {
		return clave;
	}

	/**
	 * @return el atributo descripcion
	 */
	public String getDescripcion() {
		return descripcion;
	}

	/**
	 * @return el atributo activo
	 */
	public boolean isActivo() {
		return activo;
	}

}
